/*
 * @(#)MetaObject.java	1.0 2000/12/28
 *
 * Copyright 2000 Thomas Barnekow. All Rights Reserved.
 *
 * This software is the proprietary information of Thomas Barnekow.
 * Use is subject to license terms.
 */

package tb.provider;

/**
 * This interface is to be implemented by meta-objects.
 *
 * @author Thomas Barnekow
 * @version 1.0
 */
public interface MetaObject extends Comparable {

  /**
   * Get this meta-object's id.
   */
  public Comparable getId();

  /**
   * Get this meta-object's container.
   */
  public CompoundMetaObject getContainer();

  /**
   * Get the declaration, e.g., a SQL DDL statement.
   * This is an optional operation.
   *
   * @exception UnsupportedOperationException in case this operation is not supported.
   */
  public Object getDeclaration();
}